import dotaClasses
import items
import const
import abilities


class testHero(dotaClasses.hero):
	commonName = "Test Hero"
	baseStr = 16
	gainStr = 3.4
	inventory = [(items.testItem())]
	baseDmgMin = 15
	baseDmgMax = 23
	baseAgi = 25
	gainAgi = 2.6
	level = 11
	BAT = 1.5		
	baseArmor = 5
	baseInt = 30
	gainInt = 2.5
	
class anti_mage(dotaClasses.hero):
	commonName = "Anti-Mage"
	name = "Magina"
	title = "Anti-Mage"
	fullName = "Magina, the Anti-Mage"

	#heroAbilities = [abilities.manaBreak, abilities.blink, abilities.spellShield, abilities.manaVoid, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 20
	baseAgi = 15
	baseInt = 22

	gainStr = 1.2
	gainAgi = 2.8
	gainInt = 1

	baseDmgMin = 27
	baseDmgMax = 31

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.6
	castFront = 0.3
	castBack = 0.47
	BAT = 1.45

	MS = 315
	
class axe(dotaClasses.hero):
	commonName = "Axe"
	name = "Mogul Khan"
	title = "Axe"
	fullName = "Mogul Khan, the Axe"

	#heroAbilities = [abilities.berserkersCall, abilities.battleHunger, abilities.counterHelix, abilities.cullingBlade, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 25
	baseAgi = 20
	baseInt = 18

	gainStr = 2.5
	gainAgi = 2.2
	gainInt = 1.6

	baseDmgMin = 24
	baseDmgMax = 28

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.3
	castBack = 0.51

	MS = 290
	
class bane(dotaClasses.hero):
	commonName = "Bane"
	name = "Atropos"
	title = "Bane Elemental"
	fullName = "Atropos, the Bane Elemental"

	#heroAbilities = [abilities.enfeeble, abilities.brainSap, abilities.nightmare, abilities.nightmareEnd, abilities.fiendsGrip, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 22
	baseAgi = 22
	baseInt = 22

	gainStr = 2.1
	gainAgi = 2.1
	gainInt = 2.1

	baseDmgMin = 29
	baseDmgMax = 35

	baseArmor = 2

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.5
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 400
	missileSpeed = 900

	MS = 315
	
class bloodseeker(dotaClasses.hero):
	commonName = "Bloodseeker"
	name = "Strygwyr"
	title = "Bloodseeker"
	fullName = "Strygwyr, the Bloodseeker"

	#heroAbilities = [abilities.bloodrage, abilities.bloodBath, abilities.thirst, abilities.rupture, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 23
	baseAgi = 24
	baseInt = 18

	gainStr = 2
	gainAgi = 3
	gainInt = 1.7

	baseDmgMin = 29
	baseDmgMax = 35

	baseArmor = 1

	attackFront = 0.43
	attackBack = 0.74
	castFront = 0.6
	castBack = 1.4

	MS = 305
	
class crystal_maiden(dotaClasses.hero):
	commonName = "Crystal Maiden"
	name = "Rylai"
	title = "Crystal Maiden"
	fullName = "Rylai, the Crystal Maiden"

	#heroAbilities = [abilities.crystalNova, abilities.frostbite, abilities.arcaneAura, abilities.freezingField, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 16
	baseInt = 21

	gainStr = 1.7
	gainAgi = 1.6
	gainInt = 2.9

	baseDmgMin = 17
	baseDmgMax = 23

	baseArmor = 0

	attackFront = 0.55
	attackBack = 0 #cm has 0 backswing this can't be right
	castFront = 0.3
	castBack = 2.4

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	MS = 280
	
class drow_ranger(dotaClasses.hero):
	commonName = "Drow Ranger"
	name = "Traxex"
	title = "Drow Ranger"
	fullName = "Traxex, the Drow Ranger"

	heroAbilities = [abilities.frostArrows, abilities.drowSilence, abilities.precisionAura, abilities.marksmanship, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 17
	baseAgi = 26
	baseInt = 15

	gainStr = 1.9
	gainAgi = 1.9
	gainInt = 1.4

	baseDmgMin = 18
	baseDmgMax = 29

	baseArmor = -2

	attackFront = .7
	attackBack = .3
	castFront = .4
	castBack = .5

	weaponType = const.atkRange
	attackRange = 625
	missileSpeed = 1250

	daySight = 1800
	nightSight = 1700

	MS = 300
	
class earthshaker(dotaClasses.hero):
	commonName = "Earthshaker"
	name = "Raigor Stonehoof"
	title = "Earthshaker"
	fullName = "Raigor Stonehoof, the Earthshaker"

	#heroAbilities = [abilities.fissure, abilities.enchantTotem, abilities.aftershock, abilities.echoSlam, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 12
	baseInt = 16

	gainStr = 2.5
	gainAgi = 1.4
	gainInt = 1.8

	baseDmgMin = 24
	baseDmgMax = 34

	baseArmor = 2

	attackFront = 0.467
	attackBack = 0.863
	castFront = 0.69
	castBack = 0.5

	MS = 300
	
class juggernaut(dotaClasses.hero):
	commonName = "Juggernaut"
	name = "Yurnero"
	title = "Juggernaut"
	fullName = "Yurnero, the Juggernaut"

	#heroAbilities = [abilities.bladeFury, abilities.healingWard, abilities.bladeDance, abilities.omnislash, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 20
	baseAgi = 20
	baseInt = 14

	gainStr = 1.9
	gainAgi = 2.85
	gainInt = 1.4

	baseDmgMin = 24
	baseDmgMax = 28

	baseArmor = 2

	attackFront = 0.33
	attackBack = 0.84
	castFront = 0.3
	castBack = 0.51
	BAT = 1.6

	MS = 305
	
class mirana(dotaClasses.hero):
	commonName = "Mirana"
	name = "Mirana Nightshade"
	title = "Priestess of the Moon"
	fullName = "Mirana Nightshade, the Priestess of the Moon"

	#heroAbilities = [abilities.starstorm, abilities.sacredArrow, abilities.leap, abilities.moonlightShadow, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 17
	baseAgi = 20
	baseInt = 17

	gainStr = 1.85
	gainAgi = 2.75
	gainInt = 1.65

	baseDmgMin = 18
	baseDmgMax = 29

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.5
	castBack = 0.83

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	daySight = 1800
	nightSight = 1200

	MS = 300
	
class shadow_fiend(dotaClasses.hero):
	commonName = "Shadow Fiend"
	name = "Nevermore"
	title = "Shadow Fiend"
	fullName = "Nevermore, the Shadow Fiend"

	#heroAbilities = [abilities.shadowrazeNear, abilities.shadowrazeMedium, abilities.shadowrazeFar, abilities.necromastery, abilities.presenceOfTheDarkLord, abilities.requiemOfSouls, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 15
	baseAgi = 20
	baseInt = 18

	gainStr = 2
	gainAgi = 2.9
	gainInt = 2

	baseDmgMin = 15
	baseDmgMax = 21

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.54
	castFront = 0.67
	castBack = 0.4

	weaponType = const.atkRange
	attackRange = 500
	missileSpeed = 1200
	
	MS = 305
	
class morphling(dotaClasses.hero):
	commonName = "Morphling"
	name = "Morphling"
	title = "Morphling"
	fullName = "Morphling, the Morphling"

	#heroAbilities = [abilities.waveform, abilities.adaptiveStrike, abilities.morphAgilityGain, abilities.morphStrengthGain, abilities.replicate, abilities.morphReplicate, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 19
	baseAgi = 24
	baseInt = 17

	gainStr = 2
	gainAgi = 3
	gainInt = 1.5

	baseDmgMin = 13
	baseDmgMax = 22

	baseArmor = -1

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.25
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 350
	missileSpeed = 1300

	MS = 285
	
class phantom_lancer(dotaClasses.hero):
	commonName = "Phantom Lancer"
	name = "Azwraith"
	title = "Phantom Lancer"
	fullName = "Azwraith, the Phantom Lancer"

	#heroAbilities = [abilities.spiritLance, abilities.doppelwalk, abilities.juxtapose, abilities.phantomEdge, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 18
	baseAgi = 23
	baseInt = 21

	gainStr = 1.7
	gainAgi = 4.2 #4.20
	gainInt = 2

	baseDmgMin = 22
	baseDmgMax = 44

	baseArmor = 1

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.3
	castBack = 0.51

	MS = 290
	
class puck(dotaClasses.hero):
	commonName = "Puck"
	name = "Puck"
	title = "Faerie Dragon"
	fullName = "Puck, the Faerie Dragon"

	#heroAbilities = [abilities.illusoryOrb, abilities.waningRift, abilities.phaseShift, abilities.etherealJaunt, abilities.dreamCoil, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 15
	baseAgi = 22
	baseInt = 25

	gainStr = 1.7
	gainAgi = 1.7
	gainInt = 2.4

	baseDmgMin = 22
	baseDmgMax = 33

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.8
	castFront = 0.1
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 900

	daySight = 1800
	nightSight = 1200

	MS = 295
	
class pudge(dotaClasses.hero):
	commonName = "Pudge"
	name = "Pudge"
	title = "Butcher"
	fullName = "Pudge, the Butcher"

	#heroAbilities = [abilities.meatHook, abilities.rot, abilities.fleshHeap, abilities.dismember, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 25
	baseAgi = 14
	baseInt = 14

	gainStr = 3.2
	gainAgi = 1.5
	gainInt = 1.5

	baseDmgMin = 27
	baseDmgMax = 33

	baseArmor = 0

	attackFront = 0.5
	attackBack = 1.17
	castFront = 0.3
	castBack = 0.51

	MS = 285
	
class razor(dotaClasses.hero):
	commonName = "Razor"
	name = "Razor"
	title = "Lightning Revenant"
	fullName = "Razor, the Lightning Revenant"

	#heroAbilities = [abilities.plasmaField, abilities.staticLink, abilities.unstableCurrent, abilities.eyeOfTheStorm, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 21
	baseAgi = 22
	baseInt = 19

	gainStr = 1.7
	gainAgi = 2
	gainInt = 1.8

	baseDmgMin = 23
	baseDmgMax = 25

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.5
	castBack = 0.125

	weaponType = const.atkRange
	attackRange = 475
	missileSpeed = 2000

	MS = 295
	
class sand_king(dotaClasses.hero):
	commonName = "Sand King"
	name = "Crixalis"
	title = "Sand King"
	fullName = "Crixalis, the Sand King"

	#heroAbilities = [abilities.burrowStrike, abilities.sandStorm, abilities.causticFinale, abilities.epicenter, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 18
	baseAgi = 19
	baseInt = 16

	gainStr = 2.6
	gainAgi = 2.1
	gainInt = 1.8

	baseDmgMin = 25
	baseDmgMax = 41

	baseArmor = 1

	attackFront = 0.53
	attackBack = 0.47
	castFront = 0
	castBack = 0.51

	MS = 300
	
class storm_spirit(dotaClasses.hero):
	commonName = "Storm Spirit"
	name = "Raijin Thunderkeg"
	title = "Storm Spirit"
	fullName = "Raijin Thunderkeg, the Storm Spirit"

	#heroAbilities = [abilities.staticRemnant, abilities.electricVortex, abilities.overload, abilities.ballLightning, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 22
	baseInt = 23

	gainStr = 1.5
	gainAgi = .18
	gainInt = 2.6

	baseDmgMin = 22
	baseDmgMax = 32

	baseArmor = 3

	attackFront = 0.5
	attackBack = 0.3
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 480
	missileSpeed = 1100

	MS = 295
	
class sven(dotaClasses.hero):
	commonName = "Sven"
	name = "Sven"
	title = "Rogue Knight"
	fullName = "Sven, the Rogue Knight"

	#heroAbilities = [abilities.stormHammer, abilities.greatCleave, abilities.warcry, abilities.godsStrength, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 23
	baseAgi = 21
	baseInt = 14

	gainStr = 2.7
	gainAgi = 2
	gainInt = 1.3

	baseDmgMin = 31
	baseDmgMax = 33

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.3
	castFront = 0.3
	castBack = 0.51

	MS = 295
	
class tiny(dotaClasses.hero):
	commonName = "Tiny"
	name = "Tiny"
	title = "Stone Giant"
	fullName = "Tiny, the Stone Giant"

	#heroAbilities = [abilities.avalanche, abilities.toss, abilities.craggyExterior, abilities.grow, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 24
	baseAgi = 9
	baseInt = 14

	gainStr = 3
	gainAgi = 0.9
	gainInt = 1.6

	baseDmgMin = 37
	baseDmgMax = 43

	baseArmor = 0

	attackFront = 0.49
	attackBack = 1
	castFront = 0.001
	castBack = 0

	MS = 285
	
class vengeful_spirit(dotaClasses.hero):
	commonName = "Vengeful Spirit"
	name = "Shendelzare Silkwoo"
	title = "Vengeful Spirit"
	fullName = "Shendelzare Silkwoo, the Vengeful Spirit"

	#heroAbilities = [abilities.magicMissile, abilities.waveOfTerror, abilities.vengeanceAura, abilities.netherSwap, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 16
	baseAgi = 27
	baseInt = 15

	gainStr = 2.3
	gainAgi = 2.8
	gainInt = 1.75

	baseDmgMin = 12
	baseDmgMax = 26

	baseArmor = 1

	attackFront = 0.33
	attackBack = 0.64
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 400
	missileSpeed = 1500
	
	MS = 295
	
class windrunner(dotaClasses.hero):
	commonName = "Windrunner"
	name = "Alleria"
	title = "Windrunner"
	fullName = "Alleria, the Windrunner"

	#heroAbilities = [abilities.shackleshot, abilities.powershot, abilities.windrun, abilities.focusFire, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 15
	baseAgi = 17
	baseInt = 22

	gainStr = 2.5
	gainAgi = 1.4
	gainInt = 2.6

	baseDmgMin = 22
	baseDmgMax = 34

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.3
	castFront = 0.3
	castBack = 0.5
	BAT = 1.5

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1250

	MS = 295
	
class zeus(dotaClasses.hero):
	commonName = "Zeus"
	name = "Zeus"
	title = "Lord of Olympus"
	fullName = "Zeus, the Lord of Olympus"

	#heroAbilities = [abilities.arcLightning, abilities.lightningBolt, abilities.staticField, abilities.thundergodsWrath, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 11
	baseInt = 20

	gainStr = 2.3
	gainAgi = 1.2
	gainInt = 2.7

	baseDmgMin = 21
	baseDmgMax = 29

	baseArmor = 1

	attackFront = 0.633
	attackBack = 0.366
	castFront = 0.4
	castBack = 0.5

	weaponType = const.atkRange
	attackRange = 350
	missileSpeed = 1100
	
	MS = 295
	
class kunkka(dotaClasses.hero):
	commonName = "kunkka"
	name = "Kunkka"
	title = "Admiral"
	fullName = "Kunkka, the Admiral"

	#heroAbilities = [abilities.torrent, abilities.tidebringer, abilities.xMarksTheSpot, abilities.sMarksTheSpotReturn, abilities.ghostShip, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 24
	baseAgi = 14
	baseInt = 18

	gainStr = 3
	gainAgi = 1.3
	gainInt = 1.5

	baseDmgMin = 26
	baseDmgMax = 36

	baseArmor = 1

	attackFront = 0.4
	attackBack = 0.3
	castFront = 0.4
	castBack = 0.51

	MS = 300
	
class lina(dotaClasses.hero):
	commonName = "Lina"
	name = "Lina Inverse"
	title = "Slayer"
	fullName = "Lina Inverse, the Slayer"

	#heroAbilities = [abilities.dragonSlave, abilities.lightStrikeArray, abilities.fierySoul, abilities.lagunaBlade, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 18
	baseAgi = 16
	baseInt = 27

	gainStr = 1.5
	gainAgi = 1.5
	gainInt = 3.2

	baseDmgMin = 13
	baseDmgMax = 31

	baseArmor = 0

	attackFront = 0.75
	attackBack = 0.78
	castFront = 0.45
	castBack = 1.08

	weaponType = const.atkRange
	attackRange = 625
	missileSpeed = 900
	
	MS = 295
	
class lich(dotaClasses.hero):
	commonName = "Lich"
	name = "Ethreain"
	title = "Lich"
	fullName = "Ethreain, the Lich"

	#heroAbilities = [abilities.frostBlast, abilities.iceArmor, abilities.sacrifice, abilities.chainFrost, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 18
	baseAgi = 15
	baseInt = 18

	gainStr = 1.55
	gainAgi = 2
	gainInt = 3.25

	baseDmgMin = 24
	baseDmgMax = 33

	baseArmor = 0

	attackFront = 0.46
	attackBack = 0.54
	castFront = 0.4
	castBack = 1.1

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 900
	
	MS = 315
	
class lion(dotaClasses.hero):
	commonName = "Lion"
	name = "Lion"
	title = "Demon Witch"
	fullName = "Lion, the Demon Witch"

	#heroAbilities = [abilities.earthSpike, abilities.hex, abilities.manaDrain, abilities.fingerOfDeath, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 15
	baseInt = 22

	gainStr = 1.7
	gainAgi = 1.5
	gainInt = 3

	baseDmgMin = 20
	baseDmgMax = 26

	baseArmor = 0

	attackFront = 0.43
	attackBack = 0.74
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	MS = 290
	
class shadow_shaman(dotaClasses.hero):
	commonName = "Shadow Shaman"
	name = "Rhasta"
	title = "Shadow Shaman"
	fullName = "Rhasta, the Shadow Shaman"

	#heroAbilities = [abilities.etherShock, abilities.hex, abilities.shackles, abilities.massSerpentWard, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 16
	baseInt = 21

	gainStr = 1.6
	gainAgi = 1.6
	gainInt = 3

	baseDmgMin = 26
	baseDmgMax = 33

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.5
	castFront = 0.3
	castBack = 1.07

	weaponType = const.atkRange
	attackRange = 500
	missileSpeed = 900

	MS = 285
	
class slardar(dotaClasses.hero):
	commonName = "Slardar"
	name = "Slardar"
	title = "Slithereen Guard"
	fullName = "Slardar, the Slithereen Guard"

	#heroAbilities = [abilities.sprint, abilities.slithereenCrush, abilities.bash, abilities.amplifyDamage, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 21
	baseAgi = 17
	baseInt = 15

	gainStr = 2.8
	gainAgi = 2.4
	gainInt = 1.5

	baseDmgMin = 30
	baseDmgMax = 38

	baseArmor = 4

	attackFront = 0.36
	attackBack = 0.64
	castFront = 0.35
	castBack = 0.51

	MS = 300
	
class tidehunter(dotaClasses.hero):
	commonName = "Tidehunter"
	name = "Leviathan"
	title = "Tidehunter"
	fullName = "Leviathan, the Tidehunter"

	#heroAbilities = [abilities.gush, abilities.krakenShell, abilities.anchorSmash, abilities.ravage, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 15
	baseInt = 16

	gainStr = 3
	gainAgi = 1.5
	gainInt = 1.7

	baseDmgMin = 25
	baseDmgMax = 31

	baseArmor = 2

	attackFront = 0.6
	attackBack = 0.56
	castFront = 0.3
	castBack = 0.51

	MS = 310
	
class witch_doctor(dotaClasses.hero):
	commonName = "Witch Doctor"
	name = "Zharvakko"
	title = "Witch Doctor"
	fullName = "Zharvakko, the Witch Doctor"

	#heroAbilities = [abilities.paralyzingCask, abilities.voodooRestoration, abilities.maledict, abilities.deathWard, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 13
	baseInt = 24

	gainStr = 1.8
	gainAgi = 1.4
	gainInt = 2.9

	baseDmgMin = 27
	baseDmgMax = 37

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.5
	castFront = 0.35
	castBack = 0.52

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1200

	MS = 305
	
class riki(dotaClasses.hero):
	commonName = "Riki"
	name = "Riki"
	title = "Stealth Assassin"
	fullName = "Riki, the Stealth Assassin"

	#heroAbilities = [abilities.smokeScreen, abilities.blinkStrike, abilities.backstab, abilities.permanentInvisibility, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 17
	baseAgi = 34
	baseInt = 14

	gainStr = 2
	gainAgi = 2.9
	gainInt = 1.3

	baseDmgMin = 14
	baseDmgMax = 18

	baseArmor = 2

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.4
	castBack = 0.51

	MS = 300
	
class enigma(dotaClasses.hero):
	commonName = "Enigma"
	name = "Enigma"
	title = "Enigma"
	fullName = "Enigma, the Enigma"

	#heroAbilities = [abilities.malefice, abilities.demonicConversion, abilities.midnightPulse, abilities.blackHole, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 17
	baseAgi = 14
	baseInt = 20

	gainStr = 2.1
	gainAgi = 1
	gainInt = 3.4

	baseDmgMin = 22
	baseDmgMax = 28

	baseArmor = 3

	attackFront = 0.4
	attackBack = 0.77
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 500
	missileSpeed = 900

	MS = 300

class tinker(dotaClasses.hero):
	commonName = "Tinker"
	name = "Boush"
	title = "Tinker"
	fullName = "Boush, the Tinker"

	#heroAbilities = [abilities.laser, abilities.heatSeekingMissile, abilities.marchOfTheMachines, abilities.rearm, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 17
	baseAgi = 13
	baseInt = 27

	gainStr = 2
	gainAgi = 1.2
	gainInt = 2.2

	baseDmgMin = 22
	baseDmgMax = 28

	baseArmor = 3

	attackFront = 0.35
	attackBack = 0.65
	castFront = 0.53
	castBack = 0.5

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 900

	MS = 305
	
class sniper(dotaClasses.hero):
	commonName = "Sniper"
	name = "Kardel Sharpeye"
	title = "Sniper"
	fullName = "Kardel Sharpeye, the Sniper"

	#heroAbilities = [abilities.shrapnel, abilities.headshot, abilities.takeAim, abilities.assassinate, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 16
	baseAgi = 21
	baseInt = 15

	gainStr = 1.7
	gainAgi = 2.9
	gainInt = 2.6

	baseDmgMin = 15
	baseDmgMax = 21

	baseArmor = 0

	attackFront = 0.17
	attackBack = 0.7
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 3000

	daySight = 1800
	nightSight = 1000

	MS = 290
	
class necrolyte(dotaClasses.hero):
	commonName = "Necrolyte"
	name = "Rotund'jere"
	title = "Necrolyte"
	fullName = "Rotund'jere, the Necrolyte"

	#heroAbilities = [abilities.deathPulse, abilities.heartstopperAura, abilities.sadist, abilities.reapersScythe, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 15
	baseInt = 22

	gainStr = 2.0
	gainAgi = 1.7
	gainInt = 2.5

	baseDmgMin = 22
	baseDmgMax = 26

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.77
	castFront = 0.7
	castBack = 0.8

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 900

	MS = 290
	
class warlock(dotaClasses.hero):
	commonName = "Warlock"
	name = "Demnok Lannik"
	title = "Warlock"
	fullName = "Demnok Lannik, the Warlock"

	#heroAbilities = [abilities.fatalBonds, abilities.shadowWord, abilities.upheaval, abilities.chaoticOffering, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 18
	baseAgi = 10
	baseInt = 24

	gainStr = 2.5
	gainAgi = 1
	gainInt = 2.7

	baseDmgMin = 22
	baseDmgMax = 32

	baseArmor = 2

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.5
	castBack = 0.5

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1200

	MS = 295
	
class beastmaster(dotaClasses.hero):
	commonName = "Beastmaster"
	name = "Karroch"
	title = "Beastmaster"
	fullName = "Karroch, the Beastmaster"

	#heroAbilities = [abilities.wildAxes, abilities.callOfTheWild, abilities.innerBeast, abilities.primalRoar, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 23
	baseAgi = 18
	baseInt = 16

	gainStr = 2.2
	gainAgi = 1.6
	gainInt = 1.9

	baseDmgMin = 33
	baseDmgMax = 37

	baseArmor = 3

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.5
	castBack = 0.5

	MS = 310
	
class queen_of_pain(dotaClasses.hero):
	commonName = "Queen of Pain"
	name = "Akasha"
	title = "Queen of Pain"
	fullName = "Akasha, the Queen of Pain"

	#heroAbilities = [abilities.shadowStrike, abilities.blink, abilities.screamOfPain, abilities.sonicWave, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 18
	baseInt = 24

	gainStr = 1.7
	gainAgi = 2
	gainInt = 2.5

	baseDmgMin = 25
	baseDmgMax = 33

	baseArmor = 0

	attackFront = 0.56
	attackBack = 0.41
	castFront = 0.452
	castBack = 1.008

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 1500

	MS = 300
	
class venomancer(dotaClasses.hero):
	commonName = "Venomancer"
	name = "Lesale Deathbringer"
	title = "Venomancer"
	fullName = "Lesale Deathbringer, the Venomancer"

	#heroAbilities = [abilities.venomousGale, abilities.poisonSting, abilities.plagueWard, abilities.poisonNova, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 18
	baseAgi = 22
	baseInt = 18

	gainStr = 1.85
	gainAgi = 2.6
	gainInt = 1.75

	baseDmgMin = 24
	baseDmgMax = 26

	baseArmor = 1

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 450
	missileSpeed = 900

	MS = 290
	
class faceless_void(dotaClasses.hero):
	commonName = "Faceless Void"
	name = "Darkterror"
	title = "Faceless Void"
	fullName = "Darkterror, the Faceless Void"

	#heroAbilities = [abilities.timeWalk, abilities.backtrack, abilities.timeLock, abilities.Chronosphere, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 23
	baseAgi = 21
	baseInt = 15

	gainStr = 1.6
	gainAgi = 2.65
	gainInt = 1.5

	baseDmgMin = 37
	baseDmgMax = 43

	baseArmor = 2

	attackFront = 0.5
	attackBack = 0.56
	castFront = 0.35
	castBack = 0.51

	MS = 300
	
class skeleton_king(dotaClasses.hero):
	commonName = "Skeleton King"
	name = "Ostarion"
	title = "Skeleton King"
	fullName = "Ostarion, the Skeleton King"

	#heroAbilities = [abilities.hellfireBlast, abilities.vampiricAura, abilities.criticalStrike, abilities.reincarnation, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 18
	baseInt = 13

	gainStr = 2.9
	gainAgi = 1.7
	gainInt = 1.6

	baseDmgMin = 32
	baseDmgMax = 34

	baseArmor = 2

	attackFront = 0.56
	attackBack = 0.44
	castFront = 0.35
	castBack = 0.51

	MS = 300
	
class death_prophet(dotaClasses.hero):
	commonName = "Death Prophet"
	name = "Krobelus"
	title = "Death Prophet"
	fullName = "Krobelus, the Death Prophet"

	#heroAbilities = [abilities.cryptSwarm, abilities.silence, abilities.witchcraft, abilities.exorcism, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 14
	baseInt = 20

	gainStr = 2.2
	gainAgi = 1.4
	gainInt = 3

	baseDmgMin = 24
	baseDmgMax = 36

	baseArmor = 2

	attackFront = 0.56
	attackBack = 0.51
	castFront = 0.5
	castBack = 0.83

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1000

	MS = 285
	
class phantom_assassin(dotaClasses.hero):
	commonName = "Phantom Assassin"
	name = "Mortred"
	title = "Phantom Assassin"
	fullName = "Mortred, the Phantom Assassin"

	#heroAbilities = [abilities.stiflingDagger, abilities.phantomStrike, abilities.blur, abilities.coupDeGrace, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 20
	baseAgi = 23
	baseInt = 13

	gainStr = 1.85
	gainAgi = 3.15
	gainInt = 1

	baseDmgMin = 23
	baseDmgMax = 25

	baseArmor = 2

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.3
	castBack = 0.5

	MS = 310
	
class pugna(dotaClasses.hero):
	commonName = "Pugna"
	name = "Pugna"
	title = "Oblivion"
	fullName = "Pugna, the Oblivion"

	#heroAbilities = [abilities.netherBlast, abilities.decrepify, abilities.netherWard, abilities.lifeDrain, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 17
	baseAgi = 16
	baseInt = 26

	gainStr = 1.2
	gainAgi = 1
	gainInt = 4

	baseDmgMin = 19
	baseDmgMax = 27

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.2
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	MS = 320
	
class templar_assassin(dotaClasses.hero):
	commonName = "Templar Assassin"
	name = "Lanaya"
	title = "Templar Assassin"
	fullName = "Lanaya, the Templar Assassin"

	#heroAbilities = [abilities.meld, abilities.refraction, abilities.trap, abilities.psionicTrap, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 18
	baseAgi = 23
	baseInt = 20

	gainStr = 2.1
	gainAgi = 2.7
	gainInt = 2

	baseDmgMin = 30
	baseDmgMax = 36

	baseArmor = 2

	attackFront = 0.3
	attackBack = 0.5
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 140
	missileSpeed = 900

	MS = 305
	
class viper(dotaClasses.hero):
	commonName = "Viper"
	name = "Viper"
	title = "Netherdrake"
	fullName = "Viper, the Netherdrake"

	#heroAbilities = [abilities.poisonAttack, abilities.nethertoxin, abilities.corrosiveSkin, abilities.viperStrike, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 20
	baseAgi = 21
	baseInt = 15

	gainStr = 1.9
	gainAgi = 2.5
	gainInt = 1.8

	baseDmgMin = 23
	baseDmgMax = 25

	baseArmor = 0

	attackFront = 0.33
	attackBack = 1
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 575
	missileSpeed = 1200

	MS = 285
	
class luna(dotaClasses.hero):
	commonName = "Luna"
	name = "Luna"
	title = "Moon Rider"
	fullName = "Luna, the Moon Rider"

	#heroAbilities = [abilities.lucentBeam, abilities.moonGlaive, abilities.lunarBlessing, abilities.eclipse, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 15
	baseAgi = 22
	baseInt = 16

	gainStr = 1.9
	gainAgi = 2.8
	gainInt = 1.85

	baseDmgMin = 26
	baseDmgMax = 32

	baseArmor = 1

	attackFront = 0.46
	attackBack = 0.54
	castFront = 0.6
	castBack = 0.4

	weaponType = const.atkRange
	attackRange = 330
	missileSpeed = 900

	MS = 330
	
class dragon_knight(dotaClasses.hero):
	commonName = "Dragon Knight"
	name = "Davion"
	title = "Dragon Knight"
	fullName = "Davion, the Dragon Knight"

	#heroAbilities = [abilities.breatheFire, abilities.dragonTail, abilities.dragonBlood, abilities.elderDragonForm, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 19
	baseAgi = 19
	baseInt = 15

	gainStr = 2.8
	gainAgi = 2.2
	gainInt = 1.7

	baseDmgMin = 27
	baseDmgMax = 33

	baseArmor = 2

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0
	castBack = 0.51

	MS = 290
	
class dazzle(dotaClasses.hero):
	commonName = "Dazzle"
	name = "Dazzle"
	title = "Shadow Priest"
	fullName = "Dazzle, the Shadow Priest"

	#heroAbilities = [abilities.poisonTouch, abilities.shallowGrave, abilities.shadowWave, abilities.weave, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 21
	baseInt = 27

	gainStr = 1.85
	gainAgi = 1.7
	gainInt = 3.4

	baseDmgMin = 14
	baseDmgMax = 32

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.3
	castBack = 0.5

	weaponType = const.atkRange
	attackRange = 500
	missileSpeed = 1200

	MS = 305
	
class clockwerk(dotaClasses.hero):
	commonName = "Clockwerk"
	name = "Rattletrap"
	title = "Clockwerk"
	fullName = "Rattletrap, the Clockwerk"

	#heroAbilities = [abilities.batteryAssault, abilities.powerCogs, abilities.rocketFlare, abilities.hookshot, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 24
	baseAgi = 13
	baseInt = 17

	gainStr = 2.7
	gainAgi = 2.3
	gainInt = 1.3

	baseDmgMin = 31
	baseDmgMax = 33

	baseArmor = 1

	attackFront = 0.33
	attackBack = 0.64
	castFront = 0.3
	castBack = 0.51

	MS = 315
	
class leshrac(dotaClasses.hero):
	commonName = "Leshrac"
	name = "Leshrac"
	title = "Tormented Soul"
	fullName = "Leshrac, the Tormented Soul"

	#heroAbilities = [abilities.splitEarth, abilities.diabolicEdict, abilities.lightningStorm, abilities.pulseNova, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 23
	baseInt = 26

	gainStr = 1.5
	gainAgi = 1.7
	gainInt = 3

	baseDmgMin = 19
	baseDmgMax = 23

	baseArmor = 1

	attackFront = 0.4
	attackBack = 0.77
	castFront = 0.7
	castBack = 0.8

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	daySight = 1800
	nightSight = 900

	MS = 315
	
class natures_prophet(dotaClasses.hero):
	commonName = "Nature's Prophet"
	name = "Tequoia" #furion
	title = "Nature's Prophet"
	fullName = "Tequoia, the Nature's Prophet"

	#heroAbilities = [abilities.sprout, abilities.teleportation, abilities.naturesCall, abilities.wrathOfNature, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 18
	baseInt = 21

	gainStr = 1.8
	gainAgi = 1.9
	gainInt = 2.9

	baseDmgMin = 24
	baseDmgMax = 38

	baseArmor = 2

	attackFront = 0.4
	attackBack = 0.77
	castFront = 0.5
	castBack = 1.17

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1125

	MS = 295
	
class lifestealer(dotaClasses.hero):
	commonName = "Lifestealer"
	name = "N'aix"
	title = "Lifestealer"
	fullName = "N'aix, the Lifestealer"

	#heroAbilities = [abilities.rage, abilities.feast, abilities.openWounds, abilities.infest, abilities.consume, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 25
	baseAgi = 18
	baseInt = 15

	gainStr = 2.4
	gainAgi = 1.9
	gainInt = 1.75

	baseDmgMin = 32
	baseDmgMax = 42

	baseArmor = 0

	attackFront = 0.39
	attackBack = 0.44
	castFront = 0.01
	castBack = 0.01

	MS = 315
	
class dark_seer(dotaClasses.hero):
	commonName = "Dark Seer"
	name = "Ish'kafel"
	title = "Dark Seer"
	fullName = "Ish'kafel, the Dark Seer"

	#heroAbilities = [abilities.vacuum, abilities.ionShell, abilities.surge, abilities.wallOfReplica, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 22
	baseAgi = 12
	baseInt = 29

	gainStr = 2.3
	gainAgi = 1.2
	gainInt = 2.7

	baseDmgMin = 31
	baseDmgMax = 37

	baseArmor = 5

	attackFront = 0.59
	attackBack = 0.58
	castFront = 0.4
	castBack = 0.67

	MS = 300
	
class clinkz(dotaClasses.hero):
	commonName = "Clinkz"
	name = "Clinkz"
	title = "Bone Fletcher"
	fullName = "Clinkz, the Bone Fletcher"

	#heroAbilities = [abilities.strafe, abilities.searingArrows, abilities.skeletonWalk, abilities.deathPact, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 15
	baseAgi = 22
	baseInt = 16

	gainStr = 1.6
	gainAgi = 3
	gainInt = 1.55

	baseDmgMin = 15
	baseDmgMax = 21

	baseArmor = 0

	attackFront = 0.7
	attackBack = 0.3
	castFront = 0.5
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	MS = 300
	
class omniknight(dotaClasses.hero):
	commonName = "Omniknight"
	name = "Purist Thunderwrath"
	title = "Omniknight"
	fullName = "Purist Thunderwrath, the Omniknight"

	#heroAbilities = [abilities.purification, abilities.repel, abilities.degenAura, abilities.guardianAngel, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 20
	baseAgi = 15
	baseInt = 17

	gainStr = 2.65
	gainAgi = 1.75
	gainInt = 1.8

	baseDmgMin = 31
	baseDmgMax = 41

	baseArmor = 3

	attackFront = 0.433
	attackBack = 0.567
	castFront = 0.5
	castBack = 1.67

	MS = 305

class enchantress(dotaClasses.hero):
	commonName = "Enchantress"
	name = "Aiushtha"
	title = "Enchantress"
	fullName = "Aiushtha, the Enchantress"

	#heroAbilities = [abilities.untouchable, abilities.enchant, abilities.naturesAttendants, abilities.impetus, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 19
	baseInt = 16

	gainStr = 1
	gainAgi = 1.8
	gainInt = 2.8

	baseDmgMin = 31
	baseDmgMax = 41

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 900

	daySight = 1800
	nightSight = 1800

	MS = 310
	
class huskar(dotaClasses.hero):
	commonName = "Huskar"
	name = "Huskar"
	title = "Sacred Warrior"
	fullName = "Huskar, the Sacred Warrior"

	#heroAbilities = [abilities.innerVitality, abilities.burningSpear, abilities.berserkersBlood, abilities.lifeBreak, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 18
	baseAgi = 20
	baseInt = 18

	gainStr = 2.4
	gainAgi = 2.4
	gainInt = 1.5

	baseDmgMin = 21
	baseDmgMax = 30

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.5
	castFront = 0.3
	castBack = 2.4

	weaponType = const.atkRange
	attackRange = 400
	missileSpeed = 1400
	BAT = 1.6

	MS = 300
	
class night_stalker(dotaClasses.hero):
	commonName = "Night Stalker"
	name = "Balanar"
	title = "Night Stalker"
	fullName = "Balanar, the Night Stalker"

	#heroAbilities = [abilities.void, abilities.cripplingFear, abilities.hunterInTheNight, abilities.darkness, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 23
	baseAgi = 18
	baseInt = 16

	gainStr = 2.8
	gainAgi = 2.25
	gainInt = 1.6

	baseDmgMin = 34
	baseDmgMax = 38

	baseArmor = 4

	attackFront = 0.55
	attackBack = 0.55
	castFront = 0.3
	castBack = 0.3
	
	daySight = 1200
	nightSight = 1800

	MS = 295
	
class broodmother(dotaClasses.hero):
	commonName = "Broodmother"
	name = "Black Arachnia"
	title = "Broodmother"
	fullName = "Black Arachnia, the Broodmother"

	#heroAbilities = [abilities.spawnSpiderlings, abilities.spinWeb, abilities.incapacitatingBite, abilities.insatiableHunger, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 17
	baseAgi = 18
	baseInt = 18

	gainStr = 2.5
	gainAgi = 2.2
	gainInt = 2

	baseDmgMin = 26
	baseDmgMax = 32

	baseArmor = 1

	attackFront = 0.4
	attackBack = 0.5
	castFront = 0.2
	castBack = 0.51

	MS = 295
	
class bounty_hunter(dotaClasses.hero):
	commonName = "Bounty Hunter"
	name = "Gondar"
	title = "Bounty Hunter"
	fullName = "Gondar, the Bounty Hunter"

	#heroAbilities = [abilities.shurikenToss, abilities.jinada, abilities.shadowWalk, abilities.track, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 17
	baseAgi = 21
	baseInt = 19

	gainStr = 1.8
	gainAgi = 3
	gainInt = 1.4

	baseDmgMin = 24
	baseDmgMax = 38

	baseArmor = 4

	attackFront = 0.6
	attackBack = 0.59
	castFront = 0.3
	castBack = 0.51
	
	daySight = 1800
	nightSight = 1000

	MS = 315
	
class weaver(dotaClasses.hero):
	commonName = "Weaver"
	name = "Skitskurr"
	title = "Weaver"
	fullName = "Skitskurr, the Weaver"

	#heroAbilities = [abilities.theSwarm, abilities.shukuchi, abilities.geminateAttack, abilities.timeLapse, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 15
	baseAgi = 14
	baseInt = 15

	gainStr = 1.5
	gainAgi = 2.5
	gainInt = 1.8

	baseDmgMin = 36
	baseDmgMax = 46

	baseArmor = 0

	attackFront = 0.64
	attackBack = 0.36
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 425
	missileSpeed = 900

	MS = 290
	
class jakiro(dotaClasses.hero):
	commonName = "Jakiro"
	name = "Jakiro"
	title = "Twin Headed Dragon"
	fullName = "Jakiro, the Twin Headed Dragon"

	#heroAbilities = [abilities.dualBreath, abilities.icePath, abilities.liquidFire, abilities.macropyre, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 24
	baseAgi = 10
	baseInt = 28

	gainStr = 2.3
	gainAgi = 1.2
	gainInt = 2.8

	baseDmgMin = 18
	baseDmgMax = 26

	baseArmor = 2

	attackFront = 0.4
	attackBack = 0.5
	castFront = 0.65
	castBack = 0.3

	weaponType = const.atkRange
	attackRange = 400
	missileSpeed = 1100

	MS = 290
	
class batrider(dotaClasses.hero):
	commonName = "Batrider"
	name = "Batrider"
	title = "Batrider"
	fullName = "Batrider, the Batrider"

	#heroAbilities = [abilities.stickyNapalm, abilities.flamebreak, abilities.firefly, abilities.flamingLasso, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 22
	baseAgi = 15
	baseInt = 24

	gainStr = 2.4
	gainAgi = 1.5
	gainInt = 2.5

	baseDmgMin = 24
	baseDmgMax = 28

	baseArmor = 1

	attackFront = 0.4
	attackBack = 0.54
	castFront = 0.2
	castBack = 0.7

	weaponType = const.atkRange
	attackRange = 375
	missileSpeed = 900

	MS = 290
	
class chen(dotaClasses.hero):
	commonName = "Chen"
	name = "Chen"
	title = "Holy Knight"
	fullName = "Chen, the Holy Knight"

	#heroAbilities = [abilities.penitence, abilities.testOfFaith, abilities.testOfFaithTeleport, abilities.holyPersuasion, abilities.handOfGod, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 20
	baseAgi = 15
	baseInt = 21

	gainStr = 1.5
	gainAgi = 2.1
	gainInt = 2.8

	baseDmgMin = 22
	baseDmgMax = 32

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1100

	MS = 300
	
class spectre(dotaClasses.hero):
	commonName = "Spectre"
	name = "Mercurial"
	title = "Spectre"
	fullName = "Mercurial, the Spectre"

	#heroAbilities = [abilities.spectralDagger, abilities.desolate, abilities.dispersion, abilities.haunt, abilities.reality, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 19
	baseAgi = 23
	baseInt = 16

	gainStr = 2
	gainAgi = 2.2
	gainInt = 1.9

	baseDmgMin = 23
	baseDmgMax = 27

	baseArmor = 1

	attackFront = 0.3
	attackBack = 0.7
	castFront = 0.3
	castBack = 0.51

	MS = 295
	
class doom(dotaClasses.hero):
	commonName = "Doom"
	name = "Lucifer"
	title = "Doom"
	fullName = "Lucifer, the Doom"

	#heroAbilities = [abilities.devour, abilities.scorchedEarth, abilities.lvlDeath, abilities.doom, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 26
	baseAgi = 11
	baseInt = 13

	gainStr = 3.2
	gainAgi = 0.8
	gainInt = 2.1

	baseDmgMin = 27
	baseDmgMax = 43

	baseArmor = -1

	attackFront = 0.5
	attackBack = 0.7
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkMelee
	attackRange = 150

	MS = 290
	
class ancient_apparition(dotaClasses.hero):
	commonName = "Ancient Apparition"
	name = "Kaldr"
	title = "Ancient Apparition"
	fullName = "Kaldr, the Ancient Apparition"

	#heroAbilities = [abilities.coldFeet, abilities.iceVortex, abilities.chillingTouch, abilities.iceBlast, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 18
	baseAgi = 20
	baseInt = 25

	gainStr = 1.4
	gainAgi = 2.2
	gainInt = 2.6

	baseDmgMin = 19
	baseDmgMax = 29

	baseArmor = 0

	attackFront = 0.45
	attackBack = 0.3
	castFront = 0.01
	castBack = 0.75

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1250

	daySight = 1800
	nightSight = 1400

	MS = 295
	
class ursa(dotaClasses.hero):
	commonName = "Ursa"
	name = "Ulfsaar"
	title = "Ursa Warrior"
	fullName = "Ulfsaar, the Ursa Warrior"

	#heroAbilities = [abilities.earthshock, abilities.overpower, abilities.furySwipes, abilities.enrage, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 23
	baseAgi = 18
	baseInt = 16

	gainStr = 2.9
	gainAgi = 2.1
	gainInt = 1.5

	baseDmgMin = 27
	baseDmgMax = 31

	baseArmor = 4

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.3
	castBack = 0

	MS = 310
	
class spirit_breaker(dotaClasses.hero):
	commonName = "Spirit Breaker"
	name = "Barathrum"
	title = "Spirit Breaker"
	fullName = "Barathrum, the Spirit Breaker"

	#heroAbilities = [abilities.chargeOfDarkness, abilities.empoweringHaste, abilities.greaterBash, abilities.netherStrike, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 29
	baseAgi = 17
	baseInt = 14

	gainStr = 2.4
	gainAgi = 1.7
	gainInt = 1.8

	baseDmgMin = 31
	baseDmgMax = 41

	baseArmor = 4

	attackFront = 0.6
	attackBack = 0.3
	castFront = 0.47
	castBack = 0.8

	MS = 290
	
class gyrocopter(dotaClasses.hero):
	commonName = "Gyrocopter"
	name = "Aurel Vlaicu"
	title = "Gyrocopter"
	fullName = "Aurel Vlaicu, the Gyrocopter"

	#heroAbilities = [abilities.rocketBarrage, abilities.homingMissile, abilities.flakCannon, abilities.callDown, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 18
	baseAgi = 24
	baseInt = 23

	gainStr = 1.8
	gainAgi = 2.8
	gainInt = 2.1

	baseDmgMin = 17
	baseDmgMax = 27

	baseArmor = 2

	attackFront = 0.2
	attackBack = 0.97
	castFront = 0.3
	castBack = 0.5

	weaponType = const.atkRange
	attackRange = 375
	missileSpeed = 3000

	MS = 315
	
class alchemist(dotaClasses.hero):
	commonName = "Alchemist"
	name = "Razzil Darkbrew"
	title = "Alchemist"
	fullName = "RAzzil Darkbrew, the Alchemist"

	#heroAbilities = [abilities.acidSpray, abilities.unstableConcoction, abilities.throwUnstableConcoction, abilities.greevilsGreed, abilities.chemicalRage, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 25
	baseAgi = 11
	baseInt = 25

	gainStr = 1.8
	gainAgi = 1.2
	gainInt = 1.8

	baseDmgMin = 24
	baseDmgMax = 33

	baseArmor = 1

	attackFront = 0.35
	attackBack = 0.65
	castFront = 0.4
	castBack = 0.5
	
	daySight = 1800
	nightSight = 1400

	MS = 295
	
class invoker(dotaClasses.hero):
	commonName = "Invoker"
	name = "Invoker"
	title = "Invoker"
	fullName = "Invoker, the Invoker"

	#heroAbilities = [abilities.coldSnap, abilities.ghostWalk, abilities.iceWall, abilities.emp, abilities.tornado, abilities.alacrity, abilities.sunStrike, abilities.forgeSpirit, abilities.chaosMeteor, abilities.deafeningBlast, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 20
	baseInt = 22

	gainStr = 1.7
	gainAgi = 1.9
	gainInt = 2.5

	baseDmgMin = 13
	baseDmgMax = 19

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.7
	castFront = 0
	castBack = 0

	MS = 280
	
class silencer(dotaClasses.hero):
	commonName = "Silencer"
	name = "Nortrom"
	title = "Silencer"
	fullName = "Nortrom, the Silencer"

	#heroAbilities = [abilities.curseOfTheSilent, abilities.glaivesOfWisdom, abilities.lastWord, abilities.globalSilence, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 17
	baseAgi = 16
	baseInt = 27

	gainStr = 2.2
	gainAgi = 2.1
	gainInt = 2.5

	baseDmgMin = 16
	baseDmgMax = 30

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1000

	MS = 300
	
class outworld_devourer(dotaClasses.hero):
	commonName = "Outworld Devourer"
	name = "Harbinger"
	title = "Outworld Devourer"
	fullName = "Harbinger, the Outworld Devourer"

	#heroAbilities = [abilities.arcaneOrb, abilities.astralImprisonment, abilities.essenceAura, abilities.sanitysEclipse, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 24
	baseInt = 26

	gainStr = 1.85
	gainAgi = 2
	gainInt = 3.3

	baseDmgMin = 23
	baseDmgMax = 38

	baseArmor = 3

	attackFront = 0.46
	attackBack = 0.54
	castFront = 0.25
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 450
	missileSpeed = 900

	MS = 310
	
class lycanthrope(dotaClasses.hero):
	commonName = "Lycanthrope"
	name = "Banehallow"
	title = "Lycanthrope"
	fullName = "Banehallow, the Lycanthrope"

	#heroAbilities = [abilities.summonWolves, abilities.howl, abilities.feralImpulse, abilities.shapeshift, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 16
	baseInt = 17

	gainStr = 2.75
	gainAgi = 1.9
	gainInt = 1.55

	baseDmgMin = 31
	baseDmgMax = 36

	baseArmor = 0

	attackFront = 0.55
	attackBack = 0.55
	castFront = 0.3
	castBack = 0.51

	MS = 305
	
class brewmaster(dotaClasses.hero):
	commonName = "Brewmaster"
	name = "Mangix"
	title = "Brewmaster"
	fullName = "Mangix, the Brewmaster"

	#heroAbilities = [abilities.thunderClap, abilities.drunkenHaze, abilities.drunkenBrawler, abilities.primalSplit, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 23
	baseAgi = 16
	baseInt = 14

	gainStr = 2.9
	gainAgi = 1.95
	gainInt = 1.25

	baseDmgMin = 29
	baseDmgMax = 36

	baseArmor = 2

	attackFront = 0.35
	attackBack = 0.65
	castFront = 0.4
	castBack = 0.5
	
	MS = 300
	
class shadow_demon(dotaClasses.hero):
	commonName = "Shadow Demon"
	name = "Shadow Demon"
	title = "Shadow Demon"
	fullName = "Shadow Demon, the Shadow Demon"

	#heroAbilities = [abilities.disruption, abilities.soulCatcher, abilities.shadowPoison, abilities.shdaowPoisonRelease, abilities.demonicPurge, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 17
	baseAgi = 18
	baseInt = 26

	gainStr = 1.9
	gainAgi = 2.2
	gainInt = 2.7

	baseDmgMin = 27
	baseDmgMax = 31

	baseArmor = 1

	attackFront = 0.36
	attackBack = 0.5
	castFront = 0.3
	castBack = 0.51

	weaponType = const.atkRange
	attackRange = 500
	missileSpeed = 900
	
	MS = 295

class lone_druid(dotaClasses.hero):
	commonName = "Lone Druid"
	name = "Sylla"
	title = "Lone Druid"
	fullName = "Sylla, the Lone Druid"

	#heroAbilities = [abilities.summonSpiritBear, abilities.rabid, abilities.synergy, abilities.battleCry, abilities.trueForm, abilities.trueFormReturn, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 17
	baseAgi = 24
	baseInt = 13

	gainStr = 2.1
	gainAgi = 2.7
	gainInt = 1.4

	baseDmgMin = 22
	baseDmgMax = 26

	baseArmor = 1

	attackFront = 0.33
	attackBack = 0.53
	castFront = 0.5
	castBack = 1.17

	weaponType = const.atkRange
	attackRange = 550
	missileSpeed = 900

	MS = 315
	
class chaos_knight(dotaClasses.hero):
	commonName = "Chaos Knight"
	name = "Chaos Knight"
	title = "Chaos Knight"
	fullName = "Chaos Knight, the Chaos Knight"

	#heroAbilities = [abilities.chaosBolt, abilities.realityRift, abilities.chaosStrike, abilities.phantasm, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 20
	baseAgi = 14
	baseInt = 16

	gainStr = 2.9
	gainAgi = 2.1
	gainInt = 1.2

	baseDmgMin = 29
	baseDmgMax = 59

	baseArmor = 3

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.4
	castBack = 0.2

	MS = 325
	
class meepo(dotaClasses.hero):
	commonName = "Meepo"
	name = "Meepo"
	title = "Geomancer"
	fullName = "Meepo, the Geomancer"

	#heroAbilities = [abilities.earthbind, abilities.poof, abilities.geostrike, abilities.dividedWeStand, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 23
	baseAgi = 23
	baseInt = 20

	gainStr = 1.6
	gainAgi = 1.9
	gainInt = 1.6

	baseDmgMin = 16
	baseDmgMax = 22

	baseArmor = 2.934285714

	attackFront = 0.38
	attackBack = 0.6
	castFront = 0.5
	castBack = 0.5

	daySight = 1800
	nightSight = 1800

	MS = 305
	
class treant_protector(dotaClasses.hero):
	commonName = "Treant Protector"
	name = "Rooftrellen"
	title = "Treant Protector"
	fullName = "Rooftrellen, the Treant Protector"

	#heroAbilities = [abilities.naturesGuise, abilities.leechSeed, abilities.livingArmor, abilities.overgrowth, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 25
	baseAgi = 15
	baseInt = 17

	gainStr = 3.3
	gainAgi = 2
	gainInt = 1.8

	baseDmgMin = 46
	baseDmgMax = 54

	baseArmor = 0

	attackFront = 0.6
	attackBack = 0.4
	castFront = 0.5
	castBack = 0.51

	daySight = 1800
	nightSight = 1200

	MS = 300
	
class ogre_magi(dotaClasses.hero):
	commonName = "Ogre Magi"
	name = "Aggron Stonebreak"
	title = "Ogre Magi"
	fullName = "Aggron Stonebreak, the Ogre Magi"

	#heroAbilities = [abilities.fireblast, abilities.ignite, abilities.bloodlust, abilities.multiCast, abilities.unrefinedFireblast, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 23
	baseAgi = 14
	baseInt = 17

	gainStr = 3.2
	gainAgi = 1.55
	gainInt = 2.4

	baseDmgMin = 41
	baseDmgMax = 47

	baseArmor = 4.96

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.56
	castBack = 0.51

	MS = 295
	
class undying(dotaClasses.hero):
	commonName = "Undying"
	name = "Undying"
	title = "Almighty Dirge"
	fullName = "Undying, the Almight Dirge"

	#heroAbilities = [abilities.decay, abilities.soulRip, abilities.tombstone, abilities.fleshGolem, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 10
	baseInt = 27

	gainStr = 2.1
	gainAgi = 0.8
	gainInt = 2.0

	baseDmgMin = 35
	baseDmgMax = 43

	baseArmor = 3

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.45
	castBack = 0.51

	MS = 310
	
class rubick(dotaClasses.hero):
	commonName = "Rubick"
	name = "Rubick"
	title = "Grand Magus"
	fullName = "Rubick, the Grand Magus"

	#heroAbilities = [abilities.telekinesis, abilities.fadeBold, abilities.nullField, abilities.spellSteal, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 14
	baseInt = 27

	gainStr = 1.5
	gainAgi = 1.6
	gainInt = 2.4

	baseDmgMin = 17
	baseDmgMax = 27

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.77
	castFront = 0.1
	castBack = 1.17

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1125

	MS = 290
	
class disruptor(dotaClasses.hero):
	commonName = "Disruptor"
	name = "Disruptor"
	title = "Stormcrafter"
	fullName = "Disruptor, the Stormcrafter"

	#heroAbilities = [abilities.thunderStrike, abilities.glimpse, abilities.kineticField, abilities.staticStorm, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 19
	baseAgi = 15
	baseInt = 22

	gainStr = 1.9
	gainAgi = 1.4
	gainInt = 2.5

	baseDmgMin = 27
	baseDmgMax = 31

	baseArmor = 0

	attackFront = 0.4
	attackBack = 0.5
	castFront = 0.05
	castBack = 1

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 1200
	
	MS = 300
	
class nyx_assassin(dotaClasses.hero):
	commonName = "Nyx Assassin"
	name = "Nyx Assassin"
	title = "Nyx Assassin"
	fullName = "Nyx Assassin"

	#heroAbilities = [abilities.impale, abilities.manaBurn, abilities.spikedCarapace, abilities.vendetta, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 18
	baseAgi = 19
	baseInt = 18

	gainStr = 2
	gainAgi = 2.2
	gainInt = 2.1

	baseDmgMin = 30
	baseDmgMax = 34

	baseArmor = 2

	attackFront = 0.46
	attackBack = 0.54
	castFront = 0.4
	castBack = 1.1

	MS = 300
	
class naga_siren(dotaClasses.hero):
	commonName = "Naga Siren"
	name = "Slithice"
	title = "Naga Siren"
	fullName = "Slithice, the Naga Siren"

	#heroAbilities = [abilities.mirrorImage, abilities.ensnare, abilities.ripTide, abilities.songOfTheSiren, abilities.songOfTheSirenCancel, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 21
	baseAgi = 21
	baseInt = 18

	gainStr = 2.3
	gainAgi = 2.75
	gainInt = 1.95

	baseDmgMin = 23
	baseDmgMax = 25

	baseArmor = 4

	attackFront = 0.5
	attackBack = 0.5
	castFront = 0.65
	castBack = 0.7

	MS = 320
	
class keeper_of_the_light(dotaClasses.hero):
	commonName = "Keeper of the Light"
	name = "Ezalor"
	title = "Keeper of the Light"
	fullName = "Ezalor, the Keeper of the Light"

	#heroAbilities = [abilities.illuminate, abilities.releaseIlluminate, abilities.manaLeak, abilities.chakraMagic, abilities.spiritForm, abilities.recall, abilities.blindingLight, abilities.illuminateSpiritForm, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 16
	baseAgi = 15
	baseInt = 22

	gainStr = 1.8
	gainAgi = 1.6
	gainInt = 2.8

	baseDmgMin = 18
	baseDmgMax = 32

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.85
	castFront = 0.3
	castBack = 2.4

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900
	
	MS = 315
	
class wisp(dotaClasses.hero):
	commonName = "Wisp"
	name = "Io"
	title = "Guardian Wisp"
	fullName = "Io, the Guardian Wisp"

	#heroAbilities = [abilities.tether, abilities.tetherBreak, abilities.spirits, abilities.spiritsIn, abilities.spiritsOut, abilities.overcharge, abilities.relocate, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 17
	baseAgi = 14
	baseInt = 23

	gainStr = 1.9
	gainAgi = 1.6
	gainInt = 1.7

	baseDmgMin = 26
	baseDmgMax = 35

	baseArmor = -1

	attackFront = 0.15
	attackBack = 0.4
	castFront = 0.001
	castBack = 0

	weaponType = const.atkRange
	attackRange = 575
	missileSpeed = 1600

	MS = 295
	
class visage(dotaClasses.hero):
	commonName = "Visage"
	name = "Necro'lic"
	title = "Visage"
	fullName = "Necro'lic, the Visage"

	#heroAbilities = [abilities.graveChill, abilities.soulAssumption, abilities.gravekeepersCloak, abilities.summonFamiliars, abilities.statsUpgrade]

	primaryAttr = const.attrInt
	baseStr = 22
	baseAgi = 11
	baseInt = 24

	gainStr = 2.4
	gainAgi = 1.3
	gainInt = 2.5

	baseDmgMin = 24
	baseDmgMax = 34

	baseArmor = 0

	attackFront = 0.46
	attackBack = 0.54
	castFront = 0.4
	castBack = 1.1

	weaponType = const.atkRange
	attackRange = 600
	missileSpeed = 900

	MS = 295
	
class slark(dotaClasses.hero):
	commonName = "Slark"
	name = "Slark"
	title = "Nightcrawler"
	fullName = "Slark, the Nightcrawler"

	#heroAbilities = [abilities.darkPact, abilities.pounce, abilities.essenceShift, abilities.shadowDance, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 21
	baseAgi = 21
	baseInt = 16

	gainStr = 1.8
	gainAgi = 1.5
	gainInt = 1.9

	baseDmgMin = 33
	baseDmgMax = 41

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.3
	castFront = 0.001
	castBack = 0.51

	daySight = 1800
	nightSight = 1800

	MS = 305
	
class medusa(dotaClasses.hero):
	commonName = "Medusa"
	name = "Medusa"
	title = "Gorgon"
	fullName = "Medusa, the Gorgon"

	#heroAbilities = [abilities.splitShot, abilities.mysticSnake, abilities.manaShield, abilities.stoneGaze, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 14
	baseAgi = 20
	baseInt = 19

	gainStr = 1.65
	gainAgi = 2.5
	gainInt = 1.85

	baseDmgMin = 24
	baseDmgMax = 30

	baseArmor = 0

	attackFront = 0.5
	attackBack = 0.6
	castFront = 0.4
	castBack = 0.5

	MS = 290
	
class troll_warlord(dotaClasses.hero):
	commonName = "Troll Warlord"
	name = "Jah'rakal"
	title = "Troll Warlord"
	fullName = "Jah'rakal, the Troll Warlord"

	#heroAbilities = [abilities.berserkersRageActive, abilities.whirlingAxesRanged, abilities.whirlingAxesMelee, abilities.fervor, abilities.battleTrance, abilities.statsUpgrade]

	primaryAttr = const.attrAgi
	baseStr = 17
	baseAgi = 21
	baseInt = 13

	gainStr = 2.2
	gainAgi = 2.75
	gainInt = 1

	baseDmgMin = 17
	baseDmgMax = 35

	baseArmor = 0

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.51
	castBack = 0.3

	MS = 300
	
class centaur_warrunner(dotaClasses.hero):
	commonName = "Centaur Warrunner"
	name = "Bradwarden"
	title = "Centaur Warrunner"
	fullName = "Bradwarden, the Centaur Warrunner"

	#heroAbilities = [abilities.hoofStomp, abilities.doubleEdge, abilities.return, abilities.stampede, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 223
	baseAgi = 15
	baseInt = 15

	gainStr = 3.8
	gainAgi = 2
	gainInt = 1.6

	baseDmgMin = 32
	baseDmgMax = 34

	baseArmor = 2

	attackFront = 0.3
	attackBack = 0.3
	castFront = 0.5
	castBack = 0.51

	MS = 300
	
class magnus(dotaClasses.hero):
	commonName = "Magnus"
	name = "Magnus"
	title = "Magnoceros"
	fullName = "Magnus, the Magnoceros"

	#heroAbilities = [abilities.shockwave, abilities.empower, abilities.skewer, abilities.reversePolarity, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 21
	baseAgi = 15
	baseInt = 17

	gainStr = 2.75
	gainAgi = 2.5
	gainInt = 1.65

	baseDmgMin = 28
	baseDmgMax = 40

	baseArmor = 3

	attackFront = 0.5
	attackBack = 0.84
	castFront = 0.3
	castBack = 0.6

	MS = 315
	
class timbersaw(dotaClasses.hero):
	commonName = "Timbersaw"
	name = "Rizzrack"
	title = "Timbersaw"
	fullName = "Rizzrack, the Timbersaw"

	#heroAbilities = [abilities.whirlingDeath, abilities.timberChain, abilities.reactiveArmor, abilities.chakram, abilities.returnChakram, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 16
	baseInt = 21

	gainStr = 2.1
	gainAgi = 1.3
	gainInt = 1.8

	baseDmgMin = 26
	baseDmgMax = 30

	baseArmor = -1

	attackFront = 0.36
	attackBack = 0.64
	castFront = 0.3
	castBack = 0.6

	MS = 290

class bristleback(dotaClasses.hero):
	commonName = "Bristleback"
	name = "Rigwarl"
	title = "Bristleback"
	fullName = "Bristleback, the Rigwarl"

	#heroAbilities = [abilities.viscousNasalGoo, abilities.quillSpray, abilities.bristleback, abilities.warpath, abilities.statsUpgrade]

	primaryAttr = const.attrStr
	baseStr = 22
	baseAgi = 17
	baseInt = 14

	gainStr = 2.2
	gainAgi = 1.8
	gainInt = 2.8

	baseDmgMin = 30
	baseDmgMax = 40

	baseArmor = 2

	attackFront = 0.4
	attackBack = 0.3
	castFront = 0.4
	castBack = 0.51

	MS = 295

heroDict = {'anti' : anti_mage, 'axe' : axe, 'bane' : bane, 'blood' : bloodseeker, 'maid' : crystal_maiden, 'drow' : drow_ranger, 'eart' : earthshaker, 'jugg' : juggernaut, 'potm' : mirana, 'sfien' : shadow_fiend, 'morf' : morphling, 'planc' : phantom_lancer, 'puck' : puck, 'pudge' : pudge, 'razr' : razor, 'sndk' : sand_king, 'storm' : storm_spirit, 'sven' : sven, 'tiny' : tiny, 'veng' : vengeful_spirit, 'wrunr' : windrunner, 'zeus' : zeus, 'kunk' : kunkka, 'lina' : lina, 'lich' : lich, 'lion' : lion, 'sham' : shadow_shaman, 'slar' : slardar, 'tide' : tidehunter, 'wdoc' : witch_doctor, 'riki' : riki, 'enig' : enigma, 'tnkr' : tinker, 'snpr' : sniper, 'ncro' : necrolyte, 'wlock' : warlock, 'beast' : beastmaster, 'qop' : queen_of_pain, 'veno' : venomancer, 'void' : faceless_void, 'skelk' : skeleton_king, 'dprop' : death_prophet, 'pasn' : phantom_assassin, 'pugna' : pugna, 'tempa' : templar_assassin, 'vipr' : viper, 'luna' : luna, 'dknig' : dragon_knight, 'dazl' : dazzle, 'cwerk' : clockwerk, 'lesh' : leshrac, 'nprof' : natures_prophet, 'naix' : lifestealer, 'dseer' : dark_seer, 'clnkz' : clinkz, 'omni' : omniknight, 'ench' : enchantress, 'hskr' : huskar, 'nskr' : night_stalker, 'brod' : broodmother, 'bnty' : bounty_hunter, 'wevr' : weaver, 'jkro' : jakiro, 'bat' : batrider, 'chen' : chen, 'spec' : spectre, 'doom' : doom, 'aapp' : ancient_apparition, 'ursa' : ursa, 'sbrk' : spirit_breaker, 'gyro' : gyrocopter, 'alch' : alchemist, 'carl' : invoker, 'slnc' : silencer, 'odev' : outworld_devourer, 'lycn' : lycanthrope, 'brew' : brewmaster, 'sdem' : shadow_demon, 'ldrd' : lone_druid, 'chsk' : chaos_knight, 'meep' : meepo, 'trnt' : treant_protector, 'ogre' : ogre_magi, 'undy' : undying, 'rubk' : rubick, 'drptr' : disruptor, 'nyx' : nyx_assassin, 'nsir' : naga_siren, 'kotl' : keeper_of_the_light, 'wisp' : wisp, 'visg' : visage, 'slrk' : slark, 'dusa' : medusa, 'trll' : troll_warlord, 'cent' : centaur_warrunner, 'magn' : magnus, 'tsaw' : timbersaw, 'bstl' : bristleback}
for objName in dir():
	obj = vars()[objName]
	try:
		if obj.__bases__[0] == dotaClasses.ability:
			heroDict[obj.webID] = obj
	except:
		pass
